<?php

//validar que no sean letras ni malos numeros!!!


    //los datos del form:
    $accion = $_GET['accion'];
    $id_proveedor = $_GET['proveedor'];
    $id_articulo = $_GET['articulo'];
    $cantidad = $_GET['cantidad'];
    
    switch($accion){
		case "ADD":
			require_once('../php/class/compras_prov.class.php');
			$oCompra_prov = new compra_prov();
			$oCompra_prov->ID = $oCompra_prov->getlastid();
			$oCompra_prov->ID_PROVEEDOR = $id_proveedor;
			$oCompra_prov->ID_CALIFICACION = 0; //nada
			$oCompra_prov->FECHA_PEDIDO = date('Y-m-d');
			$oCompra_prov->FECHA_ENTREGA = '1999-01-01'; //default
			$oCompra_prov->ID_STATUS = 1; // activa;
			
			if(!@$oCompra_prov->add()){
				$response = array("RESULT" => "1","ERROR" =>"Error en el pedido");
                echo json_encode($response);
                exit();
				}
			
			//el precio del articulo
			require_once('../php/class/precios.class.php');
			$oPrecio = new precio();
			$oPrecio->buscar_uno($id_articulo);
			
			//detalle del pedido:
			require_once('../php/class/detalles_compras_prov.class.php');
			$odetalle = new detalle_compra_prov();
			$odetalle->ID = $odetalle->getlastid();
			$odetalle->ID_COMPRA_PROV = $oCompra_prov->ID;
			$odetalle->ID_ARTICULO = $id_articulo;
			$odetalle->CANTIDAD = $cantidad;
			$odetalle->PRECIO_UNITARIO = $oPrecio->PRECIO_LISTA;
			$odetalle->ID_STATUS = 1; // activo

						if(!$odetalle->add()){
						$oCompra_prov->delete();
						//falta borrar las que se generaron antes que el!
						$response = array("RESULT" => "1","ERROR" =>"Error en el detalle del pedido");
						echo json_encode($response);
						exit();
						}
				
		
		$response = array("RESULT" => "0","ID_COMPRA" => $oCompra_prov->ID);
        echo json_encode($response);
        exit();
			
			
			
		break;	
		
		case "MODIFY":
			$id_compra = $_GET['id_compra'];
			require_once('../php/class/compras_prov.class.php');
			$oCompra_prov = new compra_prov();
			
				if(!@$oCompra_prov->search($id_compra)){
					$response = array("RESULT" => "1","ERROR" =>"Error buscando pedido");
					echo json_encode($response);
					exit();
					}
			
			$oCompra_prov->FECHA_PEDIDO = date('Y-m-d');
			
			if(!@$oCompra_prov->modify()){
				$response = array("RESULT" => "1","ERROR" =>"Error actualizando el pedido");
                echo json_encode($response);
                exit();
				}
			
			//el precio del articulo
			require_once('../php/class/precios.class.php');
			$oPrecio = new precio();
			$oPrecio->buscar_uno($id_articulo);
			
			//detalle del pedido:
			require_once('../php/class/detalles_compras_prov.class.php');
			$odetalle = new detalle_compra_prov();
			$odetalle->ID = $odetalle->getlastid();
			$odetalle->ID_COMPRA_PROV = $oCompra_prov->ID;
			$odetalle->ID_ARTICULO = $id_articulo;
			$odetalle->CANTIDAD = $cantidad;
			$odetalle->PRECIO_UNITARIO = $oPrecio->PRECIO_LISTA;
			$odetalle->ID_STATUS = 1; // activo

						if(!$odetalle->add()){
						//$oCompra_prov->delete();
						//falta borrar las que se generaron antes que el!
						$response = array("RESULT" => "1","ERROR" =>"Error en el detalle del pedido");
						echo json_encode($response);
						exit();
						}
				
		
		$response = array("RESULT" => "0","ID_COMPRA" => $oCompra_prov->ID);
        echo json_encode($response);
        exit();
			
			
			
		break;
		
		case "DELETE_ARTICULO":
			$id_detalle = $_GET['id_compra']; //SOLO PARA ESTE CASO
			
			//detalle del pedido:
			require_once('../php/class/detalles_compras_prov.class.php');
			$odetalle = new detalle_compra_prov();
			
			$odetalle->search($id_detalle);
			$id_compra = $odetalle->ID_COMPRA_PROV;
			
						if(!$odetalle->delete()){
						//$oCompra_prov->delete();
						//falta borrar las que se generaron antes que el!
						$response = array("RESULT" => "1","ERROR" =>"Error borrando el detalle del pedido");
						echo json_encode($response);
						exit();
						}
			
			
			
			$response = array("RESULT" => "0","ID_COMPRA" => $id_compra);
			echo json_encode($response);
			exit();
			
		break;
		
		case "DELETE_COMPRA":
		
			$id_compra = $_GET['id_compra'];
			require_once('../php/class/compras_prov.class.php');
			$oCompra_prov = new compra_prov();
			
				if(!@$oCompra_prov->search($id_compra)){
					$response = array("RESULT" => "1","ERROR" =>"Error buscando pedido");
					echo json_encode($response);
					exit();
					}
				
			if($oCompra_prov->ID_STATUS == 1){ //ESTA ABIERTO AUN
				
				if(!@$oCompra_prov->delete()){
					$response = array("RESULT" => "1","ERROR" =>"Error borrando el pedido");
					echo json_encode($response);
					exit();
				}else{
					
					//borra detalles:
					require_once('../php/class/detalles_compras_prov.class.php');
					$odetalle = new detalle_compra_prov();
					
					if(!$odetalle->delete_all($id_compra)){
						$response = array("RESULT" => "1","ERROR" =>"Error borrando el detalle del pedido");
						echo json_encode($response);
						exit();
						}
					
					$response = array("RESULT" => "0","ERROR" => "none");
					echo json_encode($response);
					exit();	
				}
			}else if($oCompra_prov->ID_STATUS == 4){ //CERRADO
					
					$oCompra_prov->ID_STATUS = 0; //inactiva
				
					if(!$oCompra_prov->modify()){
						$response = array("RESULT" => "1","ERROR" =>"Error modificando el pedido");
						echo json_encode($response);
						exit();
						}
						
				//borra detalles:
				require_once('../php/class/detalles_compras_prov.class.php');
				$odetalle = new detalle_compra_prov();
				
				if(!$odetalle->status_all($id_compra,0)){
					$response = array("RESULT" => "1","ERROR" =>"Error borrando el detalle del pedido");
					echo json_encode($response);
					exit();
					}
				
				$response = array("RESULT" => "0","ERROR" => "none");
				echo json_encode($response);
				exit();
			
			}
			
		break;
		
		case "COMPRAR":
			$id_compra = $_GET['id_compra'];
			require_once('../php/class/compras_prov.class.php');
			$oCompra_prov = new compra_prov();
			
				if(!@$oCompra_prov->search($id_compra)){
					$response = array("RESULT" => "1","ERROR" =>"Error buscando pedido");
					echo json_encode($response);
					exit();
					}
			
			$oCompra_prov->ID_STATUS = 3; // en proceso
			
			if(!@$oCompra_prov->modify()){
				$response = array("RESULT" => "1","ERROR" =>"Error actualizando el pedido");
                echo json_encode($response);
                exit();
				}else{
				
				//ACTUALIZAR TODOS:
				require_once('../php/class/detalles_compras_prov.class.php');
				$odetalle = new detalle_compra_prov();
				
				if(!$odetalle->status_all($id_compra,3)){
					$response = array("RESULT" => "1","ERROR" =>"Error en el detalle del pedido");
					echo json_encode($response);
					exit();
					}
				
				$response = array("RESULT" => "0","ERROR" => "none");
				echo json_encode($response);
				exit();
					
				
				}
			
			
			
		break;
		
		case "CERRAR":
				$id_compra = $_GET['id_compra'];
				require_once('../php/class/compras_prov.class.php');
				$oCompra_prov = new compra_prov();
					
					if(!@$oCompra_prov->search($id_compra)){
						$response = array("RESULT" => "1","ERROR" =>"Error buscando pedido");
						echo json_encode($response);
						exit();
						}
				
				$oCompra_prov->FECHA_ENTREGA = date('Y-m-d');
				$oCompra_prov->ID_STATUS = 4; //cerrada
				$oCompra_prov->ID_CALIFICACION = 1; //positiva
				
				if(!@$oCompra_prov->modify()){
				$response = array("RESULT" => "1","ERROR" =>"Error actualizando el pedido");
                echo json_encode($response);
                exit();
				}else{
				
				//ACTUALIZAR TODOS:
				require_once('../php/class/detalles_compras_prov.class.php');
				$odetalle = new detalle_compra_prov();
				
				$detalles = $odetalle->id_detalles_compra($id_compra);
				
				for($i=0;$i<count($detalles['ID']);$i++){
					
					$cantidad = $_GET['art_'.$detalles['ID'][$i]];
					
					if($detalles['CANTIDAD'][$i]!=$cantidad){
							$odetalle->search($detalles['ID'][$i]);
							$odetalle->CANTIDAD = $cantidad;
							$id_articulo = $odetalle->ID_ARTICULO;
							
							if(!@$odetalle->modify()){
								$response = array("RESULT" => "1","ERROR" =>"Error actualizando el articulo del pedido");
								echo json_encode($response);
								exit();
							}else{
								
								//ACTUALIZA EL STOCK DEL ARTICULO:
								require_once('../php/class/articulos.class.php');
								$oArticulo = new articulo();
								$oArticulo->search($id_articulo);
								$oArticulo->CANTIDAD_STOCK = $oArticulo->CANTIDAD_STOCK + $odetalle->CANTIDAD;
										
										if(!@$oArticulo->modify()){
											$response = array("RESULT" => "1","ERROR" =>"Error actualizando el stock del articulo");
											echo json_encode($response);
											exit();
										}
								}
					}
				}
				
				$response = array("RESULT" => "0","ID_COMPRA" => $id_compra);
				echo json_encode($response);
				exit();
					
				
				}
		break;
		
		}
		
    
                    
            
   
      
?>
